import Vue from "vue";
import Vuex from "vuex";

import axios from "axios";

Vue.use(Vuex);

import createPersistedState from "vuex-persistedstate";
export default new Vuex.Store(
  //核心配置项
  {
    // 配置持久化插件
    // -只有数据存续到vuex中,就会自动将数据储存到本地存续
    // -优先从本地存储获取数据到vuex中
    plugins: [createPersistedState()],
    //唯一存储数据的地方
    state: {
      // 先获取本地储存中token
      token: "",
      userInfo: {},
    },
    getters: {},
    //唯一同步更新数据的地方
    mutations: {
      updateToken(state, token) {
        state.token = token;
      },
      updataUserInfo(state, info) {
        state.userInfo = info;
      },
    },
    //唯一异步获取数据,异步更新得分
    actions: {
      //2.发送请求 获取用户信息了,存储到xuex中
      async initUserInfo(context) {
        // console.log("context", context);
        //2.1发送请求
        const { data: res } = await axios.get("/my/userinfo");
        // console.log("res", res);
        // 3.将获取到的数据存储到vuex中
        context.commit("updataUserInfo", res.data);
      },
    },
    // 模块化
    modules: {},
  }
);
